<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
/**
 * Calendarios Controller
 *
 * @property Calendario $Calendario
 */
class CalendariosController extends AppController
{

    public $uses = array(
        'Gestione',
        'Calendario',
        'Ciclo',
        'Padre','User');
    public $components = array('Fechasconvert');
    public $layout = 'colegio';

    public function beforeFilter()
    {
        parent::beforeFilter();
        //$this->Auth->allow('*');
    }

    /**
     * index method
     *
     * @return void
     */
    public function index()
    {
        $calendarios = $this->Calendario->find('all', array('recursive' => 0));
        //debug($calendarios);
        $ciclos = $this->Ciclo->find('all', array(
            'conditions' => array('Ciclo.gestion' => date('Y')),
            'fields' => array('Ciclo.id', 'Ciclo.nombre'),
            'recursive' => -1));
        
       
        
        $this->set(compact('calendarios', 'ciclos'));
        
    }

    /**
     * view method
     *
     * @throws NotFoundException
     * @param string $id
     * @return void
     */


    public function view($id = null)
    {
        $this->Calendario->id = $id;
        if (!$this->Calendario->exists()) {
            throw new NotFoundException(__('Invalid calendario'));
        }

        $this->set('calendario', $this->Calendario->read(null, $id));
    }

    /**
     * add method
     *
     * @return void
     */
    public function add()
    {
        if ($this->request->is('post')) {
            //debug($this->request->data);exit;
            $fecha1 = $this->request->data['Calendario']['fecha_inicio'];
            $fecha2 = $this->request->data['Calendario']['fecha_fin'];
            $fechadesde = $this->Fechasconvert->doCambiaFormato($fecha1);
            $fechahasta = $this->Fechasconvert->doCambiaFormato($fecha2);
            $this->request->data['Calendario']['fecha_inicio'] = $fechadesde;
            $this->request->data['Calendario']['fecha_fin'] = $fechahasta;

            $this->Calendario->create();
            if ($this->Calendario->save($this->request->data)) {
                $this->Session->setFlash(__('El dato fue registrado'), 'msgbueno');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El calendario no pudo ser guardado. Por favor, intentelo nuevamente.'),
                    'msgerror');
            }
        }
        $ciclos = $this->Ciclo->find('all', array(
            'conditions' => array('Ciclo.gestion' => date('Y')),
            'fields' => array('Ciclo.id', 'Ciclo.nombre'),
            'recursive' => -1));
        $gestiones = $this->Gestione->find('all', array('fields' => array('Gestione.nombre'),
                'recursive' => -1));
        $this->set(compact('gestiones', 'ciclos'));
    }

    /**
     * edit method
     *
     * @throws NotFoundException
     * @param string $id
     * @return void
     */
    public function edit($id = null)
    {
        $this->Calendario->id = $id;
        if (!$this->Calendario->exists()) {
            throw new NotFoundException(__('Invalid calendario'));
        }
        if ($this->request->is('post') || $this->request->is('put')) {
            //debug($this->request->data);exit;
            $fecha1 = $this->request->data['Calendario']['fecha_inicio'];
            $fecha2 = $this->request->data['Calendario']['fecha_fin'];
            $fechadesde = $this->Fechasconvert->doCambiaFormato($fecha1);
            $fechahasta = $this->Fechasconvert->doCambiaFormato($fecha2);
            $this->request->data['Calendario']['fecha_inicio'] = $fechadesde;
            $this->request->data['Calendario']['fecha_fin'] = $fechahasta;
            if ($this->Calendario->save($this->request->data)) {
                $this->Session->setFlash(__('Edicion con exito!'), 'msgbueno');
                $this->redirect(array('action' => 'index'));
            } else {
                $this->Session->setFlash(__('El calendario no pudo ser guardado. Por favor, intentelo nuevamente.'),
                    'msgerror');
            }
        } else {
            $this->request->data = $this->Calendario->read(null, $id);

            $fecha1 = $this->request->data['Calendario']['fecha_inicio'];
            $fecha2 = $this->request->data['Calendario']['fecha_fin'];
            $this->request->data['Calendario']['fecha_inicio'] = $this->Fechasconvert->
                doRevert($fecha1);
            $this->request->data['Calendario']['fecha_fin'] = $this->Fechasconvert->
                doRevert($fecha2);
            //debug($this->request->data);

        }
        $ciclos = $this->Ciclo->find('all', array(
            'conditions' => array('Ciclo.gestion' => date('Y')),
            'fields' => array('Ciclo.id', 'Ciclo.nombre'),
            'recursive' => -1));
        $gestiones = $this->Gestione->find('all', array('fields' => array('Gestione.nombre'),
                'recursive' => -1));
        $this->set(compact('gestiones', 'ciclos'));
    }

    /**
     * delete method
     *
     * @throws MethodNotAllowedException
     * @throws NotFoundException
     * @param string $id
     * @return void
     */
public function delete($id = null)
{

$this->Calendario->id = $id;
if (!$this->Calendario->exists()) {
throw new NotFoundException(__('Invalid calendario'));
}
if ($this->Calendario->delete()) {
$this->Session->setFlash(__('Calendario eliminado'), 'msgbueno');
$this->redirect(array('action' => 'index'));
}
$this->Session->setFlash(__('No se elimino el Calendario'), 'msgerror');
$this->redirect(array('action' => 'index'));
}

    
    public function enviocorreos()
    {
        $ciclo = $this->request->data['Calendario']['ciclo_id'];
        
        $calendarios = $this->Calendario->find('all', array(
           'conditions'=>array('Calendario.ciclo_id'=>$ciclo)
        ));
        //debug($calendarios);exit;
        $mails = $this->Padre->find('all', array(
        'conditions'=>array('Padre.email !='=>null),
        'fields'=>array('Padre.email'),
        'recursive'=>-1
        ));
        $a=0;
        $b=0;
        foreach($mails as $mail){
            $a++;
            $correo = $mail['Padre']['email'];
            $email = new CakeEmail();
            $email->config('smtp');
            $email->from(array('colegio@cristiamherrera.net'=>'colegio'));
            $email->to($correo);
            $email->subject('Nuevo calendario academico');
            $email->viewVars(array('dato'=>$calendarios));
            $email->template('simple_message');
            $email->emailFormat('html');
            //$email->viewVars(array('value' => 12345));
            
            
            if($email->send()){
                $b++;
            }
            $email->reset();
        }
        
        
        if($a==$b){
            $this->Session->setFlash(__('Calendario academico enviado'), 'msgbueno');
            $this->redirect(array('action' => 'index'));    
        }else{
            $this->Session->setFlash(__('Calendario no enviado'), 'msgerror');
            $this->redirect(array('action' => 'index'));
        }
         //$this->_sendNewUserMail( 1 );
    }
    function _sendNewUserMail($id = null) {
    $User = $this->User->read(null,$id);
  // debug($User);exit;
    
    $email = new CakeEmail();
        $email->config('smtp');
        $email->from(array('colegio@cristiamherrera.net'=>'colegio'));
        $email->to('miranda.adriana2010@gmail.com');
        $email->subject('Nuevo calendario academico');
        $email->template('simple_message');
        $email->emailFormat('html');
        //$email->viewVars(array('value' => 12345));
        $email->viewVars($User);
        $email->send();
        $email->reset();
 }

}
